The present invention relates to a stepping motor and the control of the same. More particularly, the present invention relates to a stepping motor having an encoder and a control device for controlling the stepping motor.
Stepping motors have features such as small size, high torque, and long life. Stepping motors are typically driven by open-loop control by utilizing the easy-to-control property. On the other hand, stepping motors have problems such as out-of-step, vibration, and a low rotational speed. To solve such problems, a method for driving a stepping motor by a closed-loop control has been proposed, where the stepping motor is provided with an encoder.
Japanese Patent Application No. 10-011069 describes the following arrangement. The number of output pulses in one cycle of an encoder is set to an integral multiple of the number of magnetic poles of a stepping motor. An exciting current to the stepping motor is switched every time a predetermined number of encoder pulses are detected with reference to an arbitrary rest position of the stepping motor. This allows the phase accuracy between the output signal of the encoder and the exalting current to the stepping motor to be smaller than or equal to a predetermined error.
In the case of this arrangement, it is necessary to cause a drive phase to be sufficiently advanced with respect to the actual angular position of a rotor in order to obtain a sufficiently large number of revolutions. However, a sufficiently advanced phase angle causes an actual phase to be excessively advanced when the rotor is operated at a low speed. In extreme cases, the rotor is adversely rotated in a reverse direction in the low-speed operation.
When the operation of the motor is initiated, the angular position of the rotor, which has been held due to microstep driving before the start of the operation, is determined by a ratio between the currents of each motor coil phase. The angular position of the rotor determined in such a manner includes an error. When an attempt is made to control the error, sufficient starting torque is sometimes not obtained, leading to a failure to start an operation.
Further, when a closed-loop driving is performed using such a stepping motor, the high positioning accuracy, which is a characteristic of the stepping motor, cannot be obtained only by closed-loop driving. Therefore, microstep driving is used in conjunction with closed-loop driving. Closed-loop driving is initially used to transfer a subject to be controlled at a high speed, thereafter, partway when the subject is decelerated, closed-loop driving is switched to microstep driving to perform accurate positioning. However, when closed-loop driving is switched to microstep driving, an unnecessary rotational amplitude often occurs, so that it is difficult to control a position and a speed accurately.
The above-described application describes no solution to these problems.
Further, conventionally, with the above-described arrangement in which a stepping motor may alternatively be used in place of a DC motor, speed control has been generally performed using an output signal of an encoder.
A problem with this arrangement is that when a head is moved at a high speed to an intended track (e.g., head movement control in a disk apparatus), a speed command value is considerably small at the point in time when the head reaches a position a few tracks away from the intended track, so that overshoot over the intended track, runaway of a motor, or the like are likely to occur due to an offset voltage or the like. To solve such a problem, Japanese Laid-open Publication No. 2-18766 discloses an arrangement in which a speed command value is increased when no signal is received from an encoder within a predetermined time.
However, it is difficult to provide an optimal value of the predetermined time with respect to any number of revolutions of a motor.
Specifically, when the predetermined time is provided so as to be suitable for a higher number of revolutions of a motor, then if the number of revolutions is small, it is often erroneously detected that temporal expansion of pulse intervals due to normal deceleration is abnormal. When the predetermined time is provided so as to be optimal for a lower number of revolutions, then if the number of revolutions is high, abnormalities cannot sometimes be detected.
Further, it is difficult to provide a corrected speed command value optimal for all cases.
Specifically, a driving system has variations in the frictional load of a motor or a transmission system, or the like. Therefore, it cannot be expected that the same increase in the speed command value leads to the same response. For example, even when the same increase in the speed command value is given to a motor, if the frictional load of a driving system is large, it may be impossible to inhibit the halt of the motor in spite of the increase. In this case, similar to the case where the speed command value is not increased, the device continues to wait for a next input pulse signal, resulting in no improved effect. Conversely, when the frictional load of the driving system is small, a high level of overshoot occurs due to an increase in the speed command value. In this manner, it is difficult to design such an increase in the speed command value that addresses variations in characteristics of a driving system. It is also difficult to perform reliable control.
The above-described application describes no solution to the above-described problems.
Hereinafter, a conventional technology will be described with reference to FIGS. 20A through 26.
FIG. 20A is a schematic diagram showing an exemplary configuration of an optical disk drive using a conventional motor control device. FIG. 20B is a table showing a relationship between an angular position xcex8 of a rotor prior to starting and a command value for forced driving.
FIG. 21 is a timing chart showing a temporal relationship between driving voltages applied to exciting coils of conventional A-phase and B-phase stators, and an output of a position detecting means.
FIG. 22 is a diagram showing a conventional relationship of a phase between a rotor and driving with respect to the time of Ta in FIG. 21.
FIG. 23 is a diagram showing a conventional relationship between the position of a rotor and electromagnetic force when the position of the rotor is shifted towards a rotational direction.
FIG. 24 is a flowchart used for explaining a conventional speed control operation.
FIGS. 25A and 25B are diagrams used for explaining an excitation sequence, showing a time-varying current command value output from an instruction amplitude control means and a microstep driving means.
FIGS. 26A and 26B are a conventional profile of an intended speed of a rotor and a conventional time chart of a current command value output from a command value selector.
In FIG. 20A, 301 indicates a head which optically records and reproduces information to and from an optical disk 302. A nut piece 303 attached to the head 301 is engaged with the grooves of a lead screw 304. The lead screw 304 has a screw pitch of 3 mm and is coupled with a stepping motor 305. Therefore, the head 301 is straightly driven back and forth along a guide shaft 306 in accordance with the rotation of the stepping motor 305. Reference numeral 307 indicates a bearing which is fixed to a chassis 308 and supports the screw 304 so that the screw 304 is freely rotated. A spindle motor 309 drives and rotates the optical disk 302. When the head 301 is moved to an intended position, a direction and a distance in which the head 301 is moved are determined based on the addresses of a current position and an intended position. In accordance with the direction and distance, a control means 310 performs a control operation for the stepping motor 305.
The driving means 311 includes an A-phase current driver 312 and a B-phase current driver 313 which are independent two-channel current drivers. The current drivers 312 and 313 supply a current to an A-phase stator 320 and a B-phase stator 321, respectively, based on digital data representing a respective current instruction amount output from the control means 310, thereby driving the stepping motor 305.
The A-phase and B-phase-current drivers 312 and 313 include power amplifiers, D/A converters, and the like. The stepping motor 305 is of A two-phase PM type and has a step angle of 18xc2x0 in two-phase excitation. The stepping motor 305 includes a rotor 322, and a two-phase exciting coil having an A-phase stator 320 and a B-phase stator 321. The rotor 322 includes a permanent magnet in which five polarized poles for each of N and S poles are evenly spaced at intervals of an angle of 72xc2x0 in a circumferential direction.
The A-phase stator 320 and the B-phase stator 321 each have a magnetic pole caused by a yoke which generates five poles for each of N and S poles at intervals of an angle of 72xc2x0. Each magnetic pole faces the rotor 322 when a current is applied to the excitation coils. The magnetic poles caused by the yokes of the A-phase stator 320 and the B-phase stator 321 are deviated by 18xc2x0 from each other.
A light shield plate 324 having slits provided at intervals of an angle of 4.5xc2x0 is fixed to a rotor axis 328. The slit angle cycle value of 4.5xc2x0 of the light shield plate 324 is determined to be an integral fraction (herein {fraction (1/16)}) of the angle cycle of 72xc2x0 of the magnetic poles of the magnet of the rotor 322. Particularly, since the number of phases of the stepping motor 305 is two, the slit angle cycle value of 4.5xc2x0 of the light shield plate 324 is also selected so as to satisfy a one divided by an integral multiple of 2 (i.e., {fraction (1/16)}=1/(2xc3x978)) of the angle cycle of 72xc2x0 of the magnetic poles of the magnet of the rotor 322.
A photosensor 325 is of a transmission type and includes an LED at a light emitting side thereof and a phototransistor at a light receiving side thereof. The photosensor 325 outputs an output signal depending on the presence or absence of a slit of the light shield plate 324.
The photosensor 325 and the light shield plate 324 are accommodated in a housing 326 so as to be prevented from being damaged in handling or the like and smudged due to dust or the like.
The output of the photosensor 325 is converted by a binary conversion circuit 327 to binary data. The binary conversion circuit 327 does not output High or Low only by comparing the output of the photosensor 325 with a certain reference value, but switches outputs of High and Low only when the output of the photosensor 325 is transitioned between the two reference values, thereby preventing an erroneous operation due to chattering.
A position detecting means 323 includes the light shield plate 324, the photosensor 325, and the binary conversion circuit 327.
The position detecting means 323 outputs a single pulse every time when the rotor axis 328 to rotated by an angle of 4.5xc2x0. Therefore, when the rotor 322 is rotated by a phase difference of 18xc2x0 between the poles of the A-phase and B-phase stators 320 and 321, the position detecting means 323 outputs exactly four pulses.
The output of the position detecting means 323 is input to the control means 310, a closed-loop driving means 317, and a speed detecting means 334.
The microstep driving means 316 outputs digital data representing a current command value to the driving means 311 in accordance with a timing signal internally generated by the microstep driving means 316 itself, thereby performing microstep driving using open-loop control. Specifically, microstep driving is performed by changing a ratio of a driving current through the A-phase stator 320 to a driving current through the B-phase stator 321, thereby controlling the rest angle of the rotor 322 with a high resolution.
A relationship between the rest angle of the rotor 322 and the current ratio depends on the states of the magnetic circuits and loads of the stepping motor 305. Therefore, current command values for providing evenly spaced rest angles of the rotor are determined as a function or a table. This leads to a consistent relationship between the rest angle of the rotor 322 and the output of the microstep driving means 316. The rest angular position of the rotor 322 can be determined from the output of the microstep driving means 316.
Microstep driving easily causes out-of-step since the driving torque is small at high speed rotation compared to a closed-loop driving described later. Therefore, microstep driving is mainly used in a low speed revolution range in which the driving torque is not required and precise positioning is required. Further, in the low speed revolution range, the precision of speed detection by an encoder is poor, and it is difficult to perform the closed-loop control in which speed is fed back. Therefore, microstep driving is typically controlled by an open loop in accordance with a pattern in which current command values and amplitude thereof are predetermined, thereby controlling the rotor 322 so that the rotor 322 is forced to follow the excitation position.
A forced driving means 338 generates eight command values far forced driving, based on information on the angular position of the rotor 322 prior to starting, the rotor 322 being held by the output of the microstep driving means 316, and a direction in which the rotor 322 is intended to be rotated.
A driving voltage determined by the command value from the forced driving means 338 to the driving means 311 takes two values, i.e., +12 V and xe2x88x9212 V when a power supply voltage is 12 V. In FIG. 20B, a rotational direction is a direction in which the rotor 322 is intended to be rotated. An angular position xcex8 is the angular position of the rotor 322 prior to starting, when the rotor 322 is held by the output of the microstep driving means 316. The angular position is 0xc2x0 only when the A-phase stator 320 is excited in a positive direction and is represented by an electrical angle where a clockwise direction is positive.
A relationship between the electrical angle xcex8 and an actual angle xcex81 is given as follows:
xcex81=xcex8/5+72N (N: any integer of 0 to 4).
Thereby, the stepping motor 305 is forcedly driven.
The closed-loop driving means 317 includes a programmable counter and the like, and generates a command value to the driving means 311 by dividing the output of the position detecting means 323. In this case, the division pattern can be selected from predetermined patterns in accordance with a signal from the control means 310.
Closed-loop driving allows a great driving torque and a large number of revolutions. The closed-loop is used to quickly raise the revolution so as to move the head 301 at a high speed. However, the precision of speed detection by an encoder is poor in a low speed revolution range and therefore a sufficient amount of speed is not allowed to be fed back. For this reason, the closed-loop cannot be used when precision at a low speed is required for final positioning or the like. To avoid this, closed-loop driving is switched to the above-described microstep driving when the number of revolutions is smaller than or equal to a certain value. Thereby, it is possible to manage both speed and positioning precision.
A driving voltage in accordance with the command value from the closed-loop means 317 to the driving means 311 takes+12 V and xe2x88x9212 V when the power supply voltage is 12 V.
This output is input to an instruction amplitude control means 315 described later. The voltage of the output to then modified by multiplying a necessary coefficient in order to control a speed and a position, and thereafter input to a command value selector 314.
In accordance with a signal from the control means 310, the command value selector 314 selects one of the output of the closed-loop driving means 317, the output of the forced driving means 338, and the output of the microstep driving means 316.
The speed detecting means 334 calculates the rotational speed value of the rotor 322 based on a pulse output from the position detecting means 323, and transits the result to a speed comparator 335 described later.
The speed comparator 335 compares the rotational speed value of the rotor 322 transmitted from the speed detecting means 334 with an intended speed value transmitted from the control means 310 to calculate the error between the intended speed value and the rotational speed value of the rotor 322.
The instruction amplitude control means 315 modifies the amplitude of a current command value transmitted from the closed-loop driving means 317, based on the speed error information output from the speed comparator 335. Specifically, whether the rotor 322 is accelerated or decelerated to cause the rotational speed value of the rotor 322 to be close to the intended speed value, is determined based on the magnitude of the speed error. Based on the result of the determination, the amplitude of the current command value is modified. The change in the amplitude of the current command value leads to a change in attraction and repulsion force between the A-phase stator 320 and the B-phase stator 321, thereby making it possible to accelerate and decelerate the rotor 322. As a result, the rotor 322 is controlled so that the actual speed is close to the speed command value.
The control means 310 controls the closed-loop driving means 317, the forced driving means 338, the microstep driving means 316, and the command value selector 314 in accordance with the rotational direction, the angular position information of the rotor 322 prior to starting held by the output of the microstep driving means 316, and the output of the position detecting means 323.
Further, a remaining distance by which the rotor 322 is to be driven by the closed-loop driving means 317 is calculated based on a pulse signal P from the position detecting means 323. This is represented by a count which is the number of pulses N from the position detecting means 323. An intended speed value SD selected in accordance with the count is read from a speed command value table (not shown), and output to the speed comparator 335.
The speed command value table is designed as follows. The rotor 322 is accelerated by the fullest capacity of the device in order to raise the speed as quickly as possible at the start of rotation. Thereafter, the number of revolutions is made equal to a predetermined value so that the rotor 322 stably stops at an intended position. When the rotor 322 is close to the intended position, the rotor 322 is decelerated at a relatively high rate in order to stop as quickly as possible and stably with a high level of precision. Up to this point, the above-described closed-loop driving is used in order to obtain a high accelerating value and a high number of revolutions. When the speed is smaller than or equal to a certain set speed, microstep driving for accurate positioning is used and the decelerating value is decreased.
When the above-described count is smaller than or equal to a predetermined reference value M, i.e., the rotor is close to the intended position and the intended speed value is lowered, an intended speed value SD corresponding to the count is selected as described above. In addition, if a next pulse signal Pxe2x80x2 from the position detecting means 323 is not input within a predetermined time T, a correction value is added to the intended speed value SD and the increased intended speed value SD is output to the speed comparator 335.
Further, when the rotor 322 is close to the intended position and the speed is smaller than or equal to a predetermined speed, closed-loop driving is switched to microstep driving for accurate positioning.
Hereinafter, a current command value generated by the instruction amplitude control means 315 and the microstep driving means 316 will be described with reference to FIGS. 25A and 25B.
FIG. 25A is a diagram used for explaining an excitation sequence indicating a temporal change in the current command value output from the instruction amplitude control means 315. The current command value is 8-bit digital data having a numerical value ranging from +127 to xe2x88x92127. In this case, the positive and negative signs indicate directions of a driving current. The magnitude of a driving current generated by the driving means 311 is proportional to the current command value. The waveform output from the instruction amplitude control means 315 is a rectangular wave where the amplitude of the current command value is Ia. The value of the amplitude Ia can take an arbitrary value ranging from xe2x88x92127 to +127, depending on the magnitude of an accelerating value or a decelerating value by the speed control. The amplitude Ia of the current command value output from the instruction amplitude control means 315 is defined as follows: the direction in Which the stepping motor 305 is accelerated is positive, while the direction in which the stepping motor 305 is decelerated is negative. The same definition is applied to the amplitude of a current command value output of an instruction amplitude control means 315 in embodiments of the present invention described later, irrespective of the rotational directions of the stepping motor 305.
FIG. 25B is a diagram used for explaining an excitation sequence indicating a temporal change in a current command value output from the microstep driving means 316. Similar to the output of the instruction amplitude control means 315, the current command value is 8-bit digital data having a numerical value ranging from +127 to xe2x88x92127. The output waveform of the microstep driving means 316 to a substantially triangular wave where the amplitude of the current command value is Ib. Microstep driving is performed by changing the ratio of a driving current of the A-phase to a driving current of the B-phase to gradually change an excitation phase. The value of the amplitude Ib of the current command value is fixed to the maximum of 127. Since the microstep driving means 316 performs open-loop control, the reversal of acceleration and deceleration does not particularly need to be taken into account, and the amplitude Ib to always defined as a positive value. This definition is applied to the amplitude of a current command value of a microstep driving means 316 described in embodiments of the present invention described later.
An operation of the thus-constructed control device for the stepping motor will be described.
The head 301 traces a certain track of the disk 302 when typical recording and reproduction are performed in an optical disk drive.
In this case, the stepping motor 305 is driven using the microstep driving means 316.
The microstep driving means 316 performs 16-division microstep driving by changing the driving current ratio of the A-phase stator 320 to the B-phase stator 321 in 16 levels. The head 301 is moved at a high resolution of 9.375 xcexcm which to {fraction (1/16)} of that of a typical two-phase excitation driving (in this case, one step corresponds to 150 xcexcm). Therefore, the stepping motor 305 stops not only at the rest angular positions of the two-phase excitation but also substantially arbitrary angular positions.
An operation in which the head 301 is moved from a track, on which reproduction is currently performed, to another track, is called seek. In this case, the control means 310 determines a method of moving the head 301 by comparing a current position address stored in the disk 302 with an intended position address.
When a movement distance is extremely short, i.e., several tracks, the head 301 is moved only by an operation of a tracking actuator without rotation of the stepping motor 305.
When the movement distance is about 1 mm, the head 301 is moved to an intended track by driving the stepping motor 305 in microsteps using the microstep driving means 316.
When the distance is greater than or equal to those of the above-described situations, the output of the displacement detecting means 323 is converted by means of division or the like using the closed-loop driving means 317 to generate a driving command value for the stepping motor 305. In accordance with the driving command value, driving is performed in association with the output of the displacement detecting means 323, thereby moving the head 301.
Hereinafter, an operation of the stepping motor 305 in such a situation will be described.
Initially, the control means 310 stops the operation of a tracking actuator of the head 301. Thereafter, a rotational direction of the stepping motor 305 is determined. In this case, the rotational direction is clockwise. At this point in time, the stepping motor 305 is driven by the microstep driving means 316. The stepping motor 305 normally remains at rest.
Thereafter, the control means 310 gives the forced driving means 338 information, such as information on the angular position of the rotor 322 prior to starting, the rotor 322 being held by the output of the microstep driving means 316, and a direction in which the rotor 322 is intended to be rotated. Further, the control means 310 causes the command value selector 314 to select the output of the forced driving means 338. The forced driving means 338 outputs a new command value to the driving means 311 in accordance with FIG. 20B based on the above-described information, independent of the output of the position detecting means 323.
Thereby, the rotor 322 begins rotating. The position detecting means 323 outputs pulses at intervals of an actual rotational angle of 4.5xc2x0.
When output of the pulses begins, the control means 310 gives the closed-loop driving means 317 information, such as information on the angular position of the rotor 322 prior to starting, the rotor 322 being held by the output of the microstep driving means 316, and a direction in which the rotor 322 is intended to be rotated. Further, the control means 310 causes the command value selector 314 to select the output of the closed-loop driving means 317.
The closed-loop driving means 317 generates a command value to the driving means 311 by dividing the output of the position detecting means 323 in accordance with a predetermined pattern. Thereby, a sequence of the command values are output to the driving means 311 in such a manner that the timing is associated with the output from the position detecting means 323.
The sequence of the command values is shown in FIG. 21 where a driving voltage applied to each excitation coil is 12 V at maximum, a driving voltage of 12 V is applied to the excitation coils of the A-phase stator 320 and a driving voltage of 0 V is applied to the excitation coils of the B-phase stator 321, and the rotor 322 is, under such conditions, actuated.
FIG. 21 is a timing chart showing a temporal relationship between driving voltages applied to the excitation coils of the conventional A-phase and B-phase stators 3 and the output of the position detecting means 3.
In FIG. 21, Av shows 2 relationship between time and a voltage applied to the excitation coils of the A-phase stator 320 as a result of the command value being input from the control means 310 to the driving means 311. Bv shows a relationship between time and a voltage applied to the excitation coils of the B-phase stator 321. FG shows a relationship between time and the output of the position detecting means 323.
The voltages applied to the excitation coils are modified by the instruction amplitude control means 315 multiplying a necessary coefficient for the purpose of controlling a speed and a position. For the sake of simplicity, FIG. 21 shows the case where such modification of the voltages is not performed.
In FIG. 21, driving independent of the output of the position detecting means 323 in performed in an interval T1 as described above. As a results in an interval T2, driving is performed in such a manner that the timing is associated with pulses output from the position detecting means 323. In an interval T3, the outputs of the A-phase and the B-phase are alternately reversed every four pulses output from the position detecting means 323. The output voltages are +12 V and xe2x88x9212 V.
FIG. 22 shows a relationship between the phases of the rotor 322 and driving at time Ta in FIG. 21 immediately after the reversal of the output.
In FIG. 22, reference numeral 320 indicates an A-phase stator, 321 indicates a B-phase stator, 322 is a rotor, 339 indicates a virtual N pole, and xcex8d indicates a driving angle.
The virtual N pole 339 is generated by combining magnetic fields generated by the A-phase stator 320 and the B-phase stator 321. The S pole of the rotor 322 is attracted in a direction of the virtual N pole. The S pole of the rotor 322 is attracted to the virtual N pole 339. An angle by which the rotor 322 is to be rotated is the driving angle xcex8d.
In this case, as shown in FIG. 22, the driving angle is 180xc2x0.
Generally, in the case of a two-phase motor, the driving angle is typically 135xc2x0. The reason for such a great angle is the following.
The winding of the stepping motor 305 has an inductance component. Therefore, a current through the winding is delayed by a certain time with respect to a change in a driving voltage. For example, when a stepping motor is rotated by pulses of 3000 PPS, an interval of a pulse is 333 xcexcsec. In this case, the delay time is as great as about 150 xcexcsec for a stepping motor which is used in an optical head movement mechanism in a typical CD-ROM apparatus. Such a delay time cannot be ignored.
For that reason, the driving phase is caused to be advanced from an optimal phase obtained when there is no delay with respect to the angular position of the rotor. Therefore, the delay time is corrected.
In accordance with the above-described procedure, the motor is actuated, and the number of revolutions is increased. Thereby, the head 301 begins to move towards an intended address.
The control means 310 calculates the remaining distance, over which the head 301 is driven by the closed-loop driving means 317, based-on the pulse signal P from the position detecting means 323. The control means 310 selects the intended speed value SD in accordance with the count, and outputs the intended speed value SD to the speed comparator 335. The intended speed is selected as follows. The rotor 322 is accelerated by the fullest capacity of the device in order to raise the speed as quickly as possible at the start of rotation. Thereafter, the number of revolutions is made equal to a predetermined value so that the rotor 322 stably stops at an intended position. When the rotor 322 is close to an intended position, the rotor 322 is decelerated at a relatively high rate in order to stop as quickly as possible and stably with a high level of precision. Up to this point, the above-described closed-loop driving is used in order to obtain a high accelerating value and a high number of revolutions. When the speed is smaller than or equal to a predetermined set speed, microstep driving for accurate positioning is used and the decelerating value is decreased.
In this manner, the deceleration operation is performed in two steps. In a period from the start of deceleration to a predetermined speed, the command value selector 314 selects the output of the instruction amplitude control means 315 and performs speed control by closed-loop driving.
FIGS. 26A and 26B are a profile of an intended speed of the rotor 322 and a time chart showing a current command value output by the command value selector 314, respectively. For the sake of simplicity, the current command value is shown for only one of the A-phase and B-phase stators 3.
The deceleration by the instruction amplitude control means 315 is performed as follows. The speed comparator 335 calculates a speed error by comparing the rotational speed of the rotor 322 detected by the speed detecting means 334 with the intended speed value. The instruction amplitude control means 315 changes the amplitude Ia of the current command value in such a manner as to cause the rotational speed of the rotor 322 to be close to the intended speed value. The torque of a motor is generally proportional to a driving current. In this example, however, a driving current is changed by controlling a driving voltage.
In this case, the amplitude Ia of the current command value takes various values, depending on variations in driving load, such as friction, and different intended speed values.
For example, when a subject to be controlled has a friction load and the acceleration of the natural deceleration due to the friction load is equal to an intended decelerating value by chance, the amplitude Ia of the current command value is substantially zero. When the friction load of a subject is great due to variation, the subject is decelerated by a decelerating value greater than an intended decelerating value. Therefore, the amplitude Ia of the current command value takes a positive value to accelerate the rotor 322 so that the speed of the rotor 322 is recovered. Further, when the friction load of a subject is small, the subject is decelerated by a decelerating value smaller than an intended decelerating value. Therefore, the amplitude Ia of the current command value takes a negative value to decelerate the rotor 322 so that the speed of the rotor 322 is further reduced.
As described above, the instruction amplitude control means 315 performs the closed-loop control in which the rotor 322 is controlled while monitoring the rotational speed of the rotor 322 by the speed detecting means 324 so that the rotational speed of the rotor 322 is equal to an intended speed value. A driving current having a different magnitude depending on variations in a bearing load of the stepping motor 305, a frictional load of the lead screw 304, and the like, is supplied to the stepping motor 305.
In this manner, the deceleration of the rotor 322 is performed by closed-loop driving, so that the speed thereof is gradually reduced while the head 301 approaches an intended address.
The above-described structure has the following problem. When a distance to an intended address is small, a speed command value is small. An overshoot over the intended address or the runaway of a motor due to an offset voltage, a halt during deceleration due to a small increase in a friction load, and the like, is likely to occur. To avoid this, a speed command value is increased if no signal is received from an encoder within a predetermined time.
FIG. 24 is a flowchart used for explaining a conventional speed control operation. The flowchart shows a procedure in which a speed command value is increased if no signal is received from an encoder within a predetermined time, in order to remove drawbacks such as a halt during deceleration due to a small increase in a friction load.
Initially, the number of remaining tracks N existing up to the track of an intended position is counted, and whether the count is xe2x80x9c0xe2x80x9d is determined (S1). If it is determined that the count is xe2x80x9c0xe2x80x9d, a deceleration operation is ended.
In step S1, if it is determined that the number N of the remaining tracks over which the head will be moved is not xe2x80x9c0xe2x80x9d, a pulse signal P is received from the position detecting means 323 and one is subtracted from the number N of the remaining tracks over which the head will be moved (S2). A speed command value SD corresponding to the number of the remaining tracks N is selected in accordance with the count (S3), and output to the speed comparator 335.
Thereafter, an actual speed detected by the speed detecting means 334 is compared with a switching speed v at which closed-loop driving is switched to microstep driving. If the actual speed is smaller than or equal to v, the deceleration by closed-loop driving is ended, and closed-loop driving is switched to microstep driving (S9).
Thereafter, whether the number of the remaining tracks N is smaller than or equal to a predetermined reference value M is determined based on the count (S4). If it is determined that the number of the remaining tracks N is greater than the reference value M, whether a next pulse signal Pxe2x80x2 is input from the position detecting means 323 is determined (S5). If it is determined that the next pulse signal Pxe2x80x2 is input, the process returns to step S1 and the above-described series of operations are repeated.
In step S4, if it is determined that the number of the remaining tracks N is smaller than or equal to the reference value M, whether the next pulse Pxe2x80x2 is input from the position detecting means 323 within the predetermined time T is determined (S6). If it is determined that the next pulse Pxe2x80x2 is input within the predetermined time T, the process returns to step S1 and the above-described series of operations are repeated.
In step S6, if it is determined that the next pulse Pxe2x80x2 is input within the predetermined time T, a correction value is added to the speed command value SD, and the increased speed command value SD is output to the speed comparator 335, resulting in an increase in the movement speed of the head 301 (57). Following this, whether a next pulse Pxe2x80x2 is input from the position detecting means 323 within the predetermined time T is determined (S8). If it is determined that the next pulse Pxe2x80x2 is input, the process returns to step S1 and the above-described series of operations are repeated until the actual speed becomes smaller than or equal to v.
As described above, unless a next pulse Pxe2x80x2 is not input from the position detecting means 323 within the predetermined time T, the speed command value SD is increased so that the movement speed of the head 301 is increased. The stepping motor 305 is controlled in this manner, thereby improving reliability against failures such as overshoot or runaway due to an offset voltage, a variation in a friction load, or the like, a halt during deceleration, and the like.
Thereafter, when the actual speed is smaller than or equal to the switching speed v at which closed-loop driving is switched to microstep driving and an intended position is close, the control means 310 for precise positioning in a stopping operation switches to the microstep driving means 316. In microstep driving, a current command value is substantially in the form of a triangular wave as shown in FIG. 25B. The decelerating operation is performed by the open-loop control in which the switching frequency of the current command value is lowered (the state of the current waveform is varied from dense to sparse). In this case, the driving is performed while the amplitude Ib of the current command value is set to a predetermined fixed value (=127), independent of the magnitude of a driving load.
In microstep driving, conditions are produced so as to further decelerate the head 301, control the position and speed of the head 301 in a subtle way, and operate the tracking actuator again.
The switching speed v at which closed-loop driving is switched to microstep driving is 440 PPS (=66 mm/s). In other word, when the speed is reduced to such a value, closed-loop driving is switched to microstep driving.
In deceleration by microstep driving, the head 301 is gradually decelerated while being moved over a distance corresponding to several hundreds of tracks of the optical disk 302.
After the deceleration, the tracking actuator is operated to trace a track after seeking. The control means 310 then compares a current position address stored in the disk 302 with an intended position address again. If both are the same, the movement operation is ended. If both are not the same, the above-described operations are repeated until both are the same.
However, the above-described method of controlling a stepping motor has the following problems.
First, as to a delay caused by an inductance component, since a delay time is constant, a delay angle is raised as the number of revolutions is increased. A circuit for advancing the driving by a predetermined time is typically complicated. Therefore, typical driving is performed in such a manner that, the phase of the division of the angular angle detecting means is caused to be advanced, and a lead angle is constant.
However, this has the following problem. Such a lead angle typically has substantially the same resolution as that of the rotational angle detecting means 3. Further, when the number of revolutions is small, the phase is excessively advanced. In an extreme case, the phase is reversed. For this reason, the lead angle cannot take a value greater than or equal to a certain value, so that a driving angle is limited to 180xc2x0 of the conventional example.
Actually, this is often insufficient for the correction of the delay time.
Second, a driving pattern generated by the forced driving device 317 upon starting is limited to two-phase excitation. Therefore, for example, in this conventional example, an angular position at which the rotor 322 is driven by electromagnetic force is one of four positions, i.e., 45xc2x0, 135xc2x0, 225xc2x0, and 315xc2x0 even when the rotor 322 prior to starting is at any position xcex8 from 0 to 360xc2x0. Thus, the angular position at which the rotor 322 is driven by electromagnetic force varies in the range from 45xc2x0 to 135xc2x0. Further, the angular position information of the rotor 322 prior to starting, the rotor 322 being held by the output of the microstep driving means 316 (FIG. 20A), typically has an error of about 14xc2x0. Taking such an error into account, the range is further increased.
For example, FIG. 23 shows a relationship between the position of the rotor 322 and electromagnetic force, when the rotor 322 is actuated from a position smaller than xcex8=0xc2x0 and the actual position of the rotor 322 is shifted towards the rotational direction.
When an error angle xcex8g is zero, the driving angle xcex8d in 45xc2x0. In FIG. 23, the driving angle xcex8d is considerably small due to the error angle xcex8g. A driving torque is maximum when the driving angle is 90xc2x0. When the driving angle is small, the driving torque is proportional to the driving angle. When the driving angle is 0xc2x0, the driving torque is zero.
As described above, when the driving angle is small, the driving torque is considerably small. No rotation may occur due to friction force or the like.
In this case, when no rotation occurs, there is no output from the position detecting means 323 (FIG. 20A). Therefore, the process does not move to the subsequent driving procedure, resulting in an actuation failure.
Third, since the predetermined time T has a fixed value, a delay of control is significant with respect to the quick deceleration of a motor. In general, the control of a motor is most unstable when the motor is rotated at a low speed. This is because the lower speed leads to a relatively large increase in influence of a non-linear factor, such as the friction of a motor bearing. In low speed rotation, the motor is quickly out of control and the speed of the motor is largely deviated from an intended speed in a short time, resulting in frequent halts of the motor. Therefore, in order to stabilize the rotation, it is extremely important to detect, at an early stage, that the motor is out of control, and to control the motor. According to the structure of the conventional example, it is difficult to realize such early detection and control. Specifically, the number of revolutions beyond which the motor is out of control varies depending on variations in friction load. In some cases, the motor may begin to be out of control from a relatively high revolution range. In other cases, the motor can be controlled in a low revolution range. When a predetermined time which has a fixed value is provided as in the conventional example and a speed command value is modified in comparison with the predetermined time, it is difficult to detect the out-of-control in a short time while preventing erroneous detection of the out-of-control in the low revolution range.
Fourth, when it is determined that a next pulse Pxe2x80x2 is not input within the predetermined time T, the correction value for the speed command value SD is constant. Actually, when the correction value is constant, it is difficult to provide the setting of the correction value for the speed command value SD, and the reliability of the control is poor. A driving system has variations in a friction load of a motor itself and a transmission system, and the like. For this reason, it cannot be expected that the same increase in the speed command value leads to the same response. For example, even when the same increase in the speed command value is given to a motor, if the frictional load of the driving system is large, it may be impossible to inhibit the halt of the motor in spite of the increase. In this case, similar to when the speed command value is not increased, the device continues to wait for a next input pulse signal, resulting in no improved effect. Conversely, when the frictional load of the driving system is small, a high level of overshoot occurs due to an increase in the speed command value. In this manner, it is difficult to design such an increase in the speed command value that addresses variations in characteristics of a driving system. It is also difficult to perform reliable control.
Fifth, it to difficult to prevent an unnecessary vibration generated in switching from closed-loop driving to microstep driving while preventing out-of-step from occurring in microstep driving. This will be described in greater detail.
In closed-loop driving, a driving current having a different magnitude depending on variations in a driving load, such as a bearing load of the stepping motor 305, a frictional load of the lead screw 304, and the like, is supplied to the stepping motor 305. For example, as described above, the case where a subject to be controlled has a friction load and the acceleration of the natural deceleration due to the friction load is equal to an intended decelerating value by chance, and the amplitude Ia of the current command value is substantially zero, is considered. This is the case where the least external control torque is required. Needless to say, no vibration due to excitation occurs. When this situation is switched to microstep driving, any given excitation energy is transformed to unnecessary vibration since excitation occurs due to a constant current amplitude Ib in microstep driving, independent of variations in a driving load. In other words, every time closed-loop driving is switched to microstep driving, the amplitude of the current command value is rapidly increased while the driving force is rapidly increased, resulting in unnecessary vibration.
On the other hand, when the amplitude Ib of the current command value is set to a small value in advance in microstep driving so as to prevent the occurrence of unnecessary vibration, if the friction load is large due to the variations, the driving force is excessively small, resulting in out-of-step.
As described above, in the conventional speed control method for a stepping motor, since the amplitude of a current command value is fixed in microstep driving, it is difficult to prevent both the occurrence of unnecessary vibration and out-of-step and therefore it is difficult to obtain stable control.
According to the present invention, a stepping motor control device comprises a stepping motor including a rotor having magnetic poles equally spaced in a circumferential direction at intervals of an angle of xcex8xc2x0, and M-phase excitation coils (M is an integer greater than or equal to two, and the M-phase does not include a reverse phase), driving means for supplying a driving current having a plurality of levels to the excitation coils in accordance with command values, command value generating means for generating the command value, where the driving current takes a different value having at least K levels (K is an integer), rotational angle detecting means for generating n pulses (n is an integer satisfying nxe2x89xa7Mxc2x7K) corresponding to rotation of the rotor, and excitation switching timing generating means for selecting pulses from the n pulses of the rotational angle detecting means in a predetermined order, and generating an excitation switching timing in the K levels to each M-phase excitation coil. In accordance with an output of the excitation switching timing generating means, the command value generating means switches between a first command value for supplying a positive first driving current to the excitation coils, a second command value for supplying a negative second driving current whose direction is reverse to that of the first driving current to the excitation coils, and a third command value for supplying a third driving current taking a value between the first and second driving currents to the excitation coils, where K is three or more.
The command value generating means may include timer means. When the command value generating means may generate the third command value, the command values are switched in accordance with an output of the timer means.
When the command value generating means outputs the third command value, the command value generating means may generate a command value which causes a large lead angle in excitation in such a direction as to compensate an excitation delay due to an inductance of the excitation coils, and thereafter, generate a value which causes a lead angle in excitation smaller than that lead angle in accordance with an output of the timer means.
The third command value of the command value generating means may be a constant value designed in such a manner that a driving current to the excitation coils is zero.
According to the present invention, another stepping motor control device comprises a stepping motor including a rotor having magnetic poles equally spaced in a circumferential direction at intervals of an angle of xcex8xc2x0, and M-phase excitation coils (M is an integer greater than or equal to two, and the M-phase does not include a reverse phase), driving means for supplying a driving current having a plurality of levels to the excitation coils in accordance with command values, command value generating means for generating the command value where the driving current takes a different value having at least K levels (K is an integer), rotational angle detecting means for generating n pulses (n is an integer satisfying nxe2x89xa7Mxc2x7K) corresponding to rotation of the rotor, excitation switching timing generating means for selecting pulses from the n pulses of the rotational angle detecting means in a predetermined order, and generating an excitation switching timing in the K levels to each M-phase excitation coil, control means for switching between first, second, and third operation modes. In the first operation mode, microstep driving is performed by the driving means, and the rotor is held at a predetermined angular position when the stepping motor is at rest. In the second operation mode, when the stepping motor in rotated by a predetermined amount or more, the command value generating means is caused to generate a command value in accordance with a timing generated by the control means itself, and thereafter, the second operation mode is switched to the third operation mode. In the third is operation mode, the stepping motor is controlled by changing the command value in accordance with an output of the excitation switching timing means. In the second operation mode, the command value generating means generates a first command value for supplying a positive first driving current to the excitation coils, a second command value for supplying a negative second driving current whose direction is reverse to that of the first driving current to the excitation coils, and a third command value for supplying a third driving current taking a value between the first and second driving currents to the excitation coils, and generates different command values to the command value generating means in accordance with an angular position of the rotor by the control means.
The third command value in the second operation mode of the control means may be a constant value designed in such a manner that a driving current to the excitation coils is zero.
According to the present invention, a still another stepping motor control device for controlling a speed of a subject to be controlled by a driving current to the stepping motor, comprises displacement detecting means for generating a detection pulse signal in accordance with a certain amount of displacement of the subject to be controlled, timer means for measuring a time interval from the last detection pulse signal to the present time, control means for changing the driving current when an output of the timer means exceeds a certain reference value, and reference value updating means for updating the reference value in accordance with an output of the displacement detecting means.
The reference value updating means may include speed detecting means for detecting a speed of the subject to be controlled by measuring a time interval between each detection signal generated by the displacement detecting means, and converting means for converting an output of the speed detecting means to the reference value in accordance with predetermined correspondence. An output of the converting means may be updated as a reference value every time the displacement detecting means generates the detection signal.
The converting means may calculate an allowable speed based on an output of the speed detecting means and a predetermined allowable accelerating value value, and generate the reference value in such a manner as to be proportional to an inverse of the allowable speed.
According to the present invention, a still another stepping motor control device, comprises a stepping motor including a rotor and a plurality of excitation coils, displacement detecting means for generating a detection pulse signal corresponding to a rotational displacement of the rotor, driving means for supplying a driving current to each excitation coil in accordance with an input command value, control means for controlling the stepping motor by changing the command value supplied to the driving means in accordance with a timing corresponding to the detection pulse signal of the displacement detecting means, and timer means for measuring a time interval from the last detection pulse signal to the present time. The control means changes a ratio of a driving current supplied to each excitation coil by changing the command value when an output of the timer means exceeds a reference value.
The stepping motor control device may further comprise means for changing the ratio of the driving current in such a direction as to delay an excitation phase of the stepping motor when a change in an intended speed is in a deceleration direction.
According to the present invention, a still another stepping motor control device for controlling a speed of a subject to be controlled by a driving current to the stepping motor, comprises displacement detecting means for generating a detection signal corresponding to a predetermined amount of displacement of the subject to be controlled, timer means for measuring a time interval from the last detection signal to the present time, and control means for changing the driving current when an output of the timer means exceeds a certain reference value. A change in the driving current is increased in accordance with an output of the timer means.
According to the present invention, a still another stepping motor control device, comprises a stepping motor including a rotor and an excitation coils, driving means for supplying a driving current to the excitation coils in accordance with an input command value, control means for controlling the stepping motor by changing the command value supplied to the driving means, displacement detecting means for generating a detection signal corresponding to a rotational displacement of the rotor, and timer means for measuring a time interval from the last detection signal to the present time. The control means switches between a first operation mode and a second operation mode, changes the command value supplied to the driving means in accordance with a timing generated by the control means itself in the first operation mode, and changes the command value supplied to the driving means in accordance with a timing corresponding to the detection signal of the displacement detecting means in the second operation mode, to control the stepping motor. The control means switches the operation mode from the second operation mode to the first operation mode when an output of the timer means exceeds a certain reference value.
The reference value may be a predetermined constant value.
The stepping motor control device may further comprise reference value updating means for updating the reference value in accordance with an output of the displacement detecting means. An output of the speed detecting means may be updated by converting to the reference value in accordance with correspondence predetermined by the reference value updating means every time the displacement detecting means generates the detection signal.
According to the present invention, a still another stepping motor control device, comprises a stepping motor including an armature and an excitation coil, control means for controlling an amplitude and an excitation phase of a driving current supplied to the excitation coils, and a position detecting means for generating a detection signal corresponding to a position of the armature. The control means provides a first operation mode and a second operation mode, the first and second operation modes being capable of being switched. In the first operation mode, an excitation phase of the driving current is controlled in accordance with a timing corresponding to the detection signal of the position detecting means. In the second operation mode, an excitation phase of the driving current is controlled in accordance with a timing generated by the control means itself. When an operation mode of the control means is switched from the first operation mode to the second operation mode, an amplitude of the driving current in the second operation mode is designed in accordance with an amplitude of the driving current in the first operation mode.
The control means may perform speed control of the stepping motor in accordance with a predetermined intended speed profile. The control means may decelerate the stepping motor with a first decelerating value in the first operation mode, and thereafter, decelerates the stepping motor with a second decelerating value in the second operation mode. The control means may set the first and second decelerating values to substantially the same value, and as an amplitude of the driving current in the first operation mode is decreased, an amplitude of the driving current in the second operation mode to decreased.
An amplitude Ia of the driving current in the first operation mode and an amplitude Ib of the driving current in the second operation mode may have a relationship represented by
Ib=kxc2x7|Ia|+C
where k and C are positive constants, Ia is positive when the driving current is supplied in such a direction as to accelerate the stepping motor and is negative when the driving current is supplied in such a direction as to decelerate the stepping motor.
The control means may perform speed control of the stepping motor in accordance with a predetermined intended speed profile. The control means may decelerate the stepping motor with a first decelerating value in the first operation mode, and thereafter, decelerates the stepping motor with a second decelerating value in the second operation mode. The control means may set the first and second decelerating values so that the first decelerating value is greater than the second decelerating value, and an amplitude Ia of the driving current in the first operation mode and an amplitude Ib of the driving current in the second operation mode have a relationship represented by
Ib=kxe2x80x2xc2x7|Ia+b|+Cxe2x80x2
where kxe2x80x2, b, and Cxe2x80x2 are positive constants, Ia is positive when the driving current is supplied in such a direction as to accelerate the stepping motor and is negative when the driving current Ia supplied in such a direction as to decelerate the stepping motor.
The control means may perform speed control of the stepping motor in accordance with a predetermined intended speed profile. The control means may decelerate the stepping motor with a first decelerating value in the first operation mode, and thereafter, decelerates the stepping motor with a second decelerating value in the second operation mode. The control means may set the first and second decelerating values so that the first decelerating value is smaller than the second decelerating value, and an amplitude Ia of the driving current in the first operation mode and an amplitude Ib of the driving current in the second operation mode has a relationship represented by
Ib=kxe2x80x3xc2x7|Iaxe2x88x92bxe2x80x2|+Cxe2x80x3
where kxe2x80x3, bxe2x80x2, and Cxe2x80x3 are positive constants, Ia is positive when the driving current is supplied in such a direction as to accelerate the stepping motor and is negative when the driving current is supplied in such a direction as to decelerate the stepping motor.